package leetcode

//题目描述：在数组中找到2个数字之和等于给定值的数字，结果返回2个数字在
//数组中的下标
//比如给定数组nums=[2,7,11,15] 找出两数之和等于9的  返回下标
//解题思路：顺序扫描数组，对每个元素，在map中找到能组合给定值的另一半数字，如果找到了，直接
//返回2个数字的下标，找不到，就把数字存入map，等待扫到另一半数字的时候，再取出来返回结果

func twoSum(nums []int, target int) []int {
	m := make(map[int]int)
	for i := 0; i < len(nums); i++ {
		another := target - nums[i]
		if _, ok := m[another]; ok {
			return []int{m[another], i}
		}
		m[nums[i]] = i
	}
	return nil
}
